Computer systems have quickly become the center of numerous operations performed in households throughout the world. Previously, a computer was used only for computing operations; however, uses for computers have progressed from this simple model into an electronics hub. A few examples of this progression include using a computer as a media center, a TV, a stereo, and a picture repository. As a result, the amount of multi-tasking on a computer system has also drastically increased, requiring more system memory to perform multiple operations.
In the recent past, a majority of local memory in a computer system included dynamic random access memory (DRAM), both for its speed and relatively inexpensive nature. Common examples of DRAM include synchronous DRAM (SDRAM), double-data rate ram (DDR), and fully buffered DRAM (FBD). Typically, only one type of DRAM is used per system. In fact, if multiple double inline memory modules (DIMMs) are used in a computer system, not only is the type of DIMM matched but the timing of the DIMM is also often closely matched to ensure the highest performance.
However, as non-volatile memory (NVM), such as flash devices, have developed, the cost has been decreased. Furthermore, as the current investigation into different types of flash, such as NAND flash and multi-cell technology, increases, the cost of newer flash devices starts to approach and potentially become cheaper than DRAM technologies. Yet, NVM still often demonstrates poorer performance than DRAM. Consequently, it may become potentially advantageous to mix memory types in a computer system to achieve a balance between price, speed, power dissipation, and other considerations.
In many server implementations, local memory, i.e. memory in a single server or computing system, is shared with global/remote memory, i.e. memory on other platforms or computing systems. However, to achieve this a Static Resource Affinity Table (SRAT) is usually used to represent the distance of a memory, so software may determine which memory to use based on the distance of the memory and the time-critical nature of the memory operation.